package com.cloudkinto.bo.order.inbound;

import com.cloudkinto.enumType.order.inbound.ArrivalModeEnum;
import com.cloudkinto.enumType.order.inbound.InboundTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 入库单新增
 *
 * @author long
 */
@Data
public class OrderInputSaveBo {

    private Long id;

    /**
     * 仓库id
     */
    @NotNull(message = "仓库id不可为空")
    @ApiModelProperty("warehouseId仓库id")
    private Long warehouseId;

    /**
     * 到仓方式 {@link ArrivalModeEnum}
     */
    @NotNull(message = "到仓方式不可为空")
    @ApiModelProperty("arriveMethod到仓方式")
    private Integer arriveMethod;

    /**
     * 物流跟踪号
     */
    @ApiModelProperty("trackingNumber物流跟踪号")
    private String trackingNumber;

    /**
     * 参考单号
     */
    @ApiModelProperty("referenceNumber参考单号")
    private String referenceNumber;

    /**
     * 入库类型 {@link InboundTypeEnum}
     */
    @ApiModelProperty("inboundType入库类型")
    @NotNull(message = "入库类型不可为空")
    private Integer inboundType;

    /**
     * 产品数量
     */
    @NotNull(message = "产品数量不可为空")
    @ApiModelProperty("skuTotalQty产品数量")
    private Integer skuTotalQty;

    /**
     * 预报总托盘数
     */
    @ApiModelProperty("palletsTotalQty预报总托盘数")
    private Integer palletsTotalQty = 0;

    /**
     * 状态
     */
    @ApiModelProperty("status状态")
    private Integer status;

    /**
     * 有无附件
     */
    @ApiModelProperty("appendixFlag有无附件")
    private Boolean appendixFlag = false;

    /**
     * 附件ids
     */
    @ApiModelProperty("fileIds附件ids")
    private String fileIds;

    /**
     * 预计到达日期
     */
    @ApiModelProperty("expectedDate预计到达日期")
    private String expectedDate;

    @ApiModelProperty("reserveFlag预约标识 0普通库存 1预售库存")
    private Integer reserveFlag;

    /**
     * 备注
     */
    @ApiModelProperty("remark备注")
    private String remark;

    /**
     * 入库产品列表
     */
    @ApiModelProperty("boxList入库产品列表")
    @NotNull(message = "入库产品列表不可为空")
    private List<OrderInputBoxAddBo> boxList;

    @ApiModelProperty(hidden = true)
    private boolean postJdyInputOrder;
}
